1 Parte I

1.1 Bibliotecas

library(data.table)
library(dplyr)
library(ggplot2)
library(grid)
library(plotly)
library(tibble)
library(stringr)
library(rpart)
library(rpart.plot)

1.2 Importando os dados

wine_dset <- read.csv2('BaseWine_Red_e_White2018.csv')

1.2.1 Identificando as variáveis

Para começar nossa análise vamos identificar as variáveis para entender o que elas podem significar no contexto da composição de um vinho.

str(wine_dset)
## 'data.frame':    6497 obs. of  14 variables:
##  $ id_vinho          : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ fixedacidity      : num  6.6 6.7 10.6 5.4 6.7 6.8 6.6 7.2 5.1 6.2 ...
##  $ volatileacidity   : num  0.24 0.34 0.31 0.18 0.3 0.5 0.61 0.66 0.26 0.22 ...
##  $ citricacid        : num  0.35 0.43 0.49 0.24 0.44 0.11 0 0.33 0.33 0.2 ...
##  $ residualsugar     : num  7.7 1.6 2.2 4.8 18.8 ...
##  $ chlorides         : num  0.031 0.041 0.063 0.041 0.057 0.075 0.069 0.068 0.027 0.035 ...
##  $ freesulfurdioxide : num  36 29 18 30 65 16 4 34 46 58 ...
##  $ totalsulfurdioxide: num  135 114 40 113 224 49 8 102 113 184 ...
##  $ density           : num  0.994 0.99 0.998 0.994 1 ...
##  $ pH                : num  3.19 3.23 3.14 3.42 3.11 3.36 3.33 3.27 3.35 3.11 ...
##  $ sulphates         : num  0.37 0.44 0.51 0.4 0.53 0.79 0.37 0.78 0.43 0.53 ...
##  $ alcohol           : num  10.5 12.6 9.8 9.4 9.1 9.5 10.4 12.8 11.4 9 ...
##  $ quality           : int  5 6 6 6 5 5 4 6 7 6 ...
##  $ Vinho             : Factor w/ 2 levels "RED","WHITE": 2 2 1 2 2 1 1 1 2 2 ...


“fixedacidity” -> Acidex Fixa : Acidez é uma das características básica que tem uma contribuição relevante para o sabor, frescura, equilíbrio e capacidade de conservação dos vinhos. Acidez Fixa é a diferença entre acidez total do vinho e sua acidez volátil.

“volatileacidity” -> Acidex Volátil : É um componente do vinho que tipicamente cresce conforme o vinho envelhece e, em quando atinge um nível elevado, é responsável pelo aroma de vinagre. É o resultado da falta de cuidados durante a vinificação.

“citricacid” -> Ácido Cítrico : Nos vinhos o ácido cítrico tem pouca ou nenhuma presença. Nos vinhos tintos desaparece devido à ação de bactérias láticas (fermentação malolática). Sensorialmente é fresco, porém em alguns casos pode apresentar um leve final amargo.

“residualsugar” -> Açucar Residual : No processo de fermentação do vinho a levedura vai transformando o açúcar da uva em álcool. Por isso que, em teoria, quanto mais açúcar houver na uva, mais álcool haverá no vinho. Porem nem todo o açucar é transformado em alcool, e o açucar que resta no final do processo de fermentação é conhecido como açucar residual.

“chlorides” -> Cloretos : Os vinhos possuem em sua composição diversos produtos enológicos, sais e ácidos. Estes sais influenciam diretamente em sua qualidade.

“freesulfurdioxide” -> Dioxido de Enxofre Livre : As atividade antioxidásica do Dioxido de Enxofre bloqueia a ação de enzimas oxidantes, principalmente no início do processo de elaboração, evitando reações de oxidação e o conseqüente escurecimento do vinho.

“totalsulfurdioxide” -> Dioxido de Enxofre Total : Dioxido de Enxofre é usado como conservante nos vinhos .

“density” -> Densidade : Define a leveza do vinhos, e pode ser caracterizado pelo tipo da uva ou por técnicas usadas na vinificação que podem ser determinantes na concentração da bebida.

“pH” -> PH : Vinhos são naturalmente ácidos, com a maioria indo de 2,8 a 4,0. Os níveis de pH estão intrinsecamente ligados ao estilo e qualidade dos vinhos. O pH relativamente baixo, na faixa de 3,1 a 3,4, parece ser pré-requisito para a produção de vinhos de alta qualidade com solidez.

“sulphates” -> Sulfatos : Os sulfitos também tem um papel de conservantes nos vinhos e ajudam na extração dos compostos fenólicos do vinho, responsáveis pela concentração de cor e taninos.

“alcohol” -> Alchool : O teor ácido é aquele responsável por conferir a textura e sensação de frescor. O teor ácido do vinho está diretamente ligado ao tipo de uva com o qual foi produzido, e o ideal é encontrar o equilíbrio perfeito entre o açúcar e a acidez ideal na hora da colheita.

“quality” -> Qualidade : Uma infidade de aspectos influenciam na qualidade dos vinhos, desde aspectos como o nivel de oxidação, até a contaminação da rolha.

“Vinho” -> Vinho : Os principais tipos de vinhos são Tintos e Brancos, mas há também outros tipos como vinhos roses, doces e espumantes.

1.2.2 Uma visão rápida no dataset

glimpse(wine_dset)
## Observations: 6,497
## Variables: 14
## $ id_vinho           <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ...
## $ fixedacidity       <dbl> 6.6, 6.7, 10.6, 5.4, 6.7, 6.8, 6.6, 7.2, 5....
## $ volatileacidity    <dbl> 0.240, 0.340, 0.310, 0.180, 0.300, 0.500, 0...
## $ citricacid         <dbl> 0.35, 0.43, 0.49, 0.24, 0.44, 0.11, 0.00, 0...
## $ residualsugar      <dbl> 7.70, 1.60, 2.20, 4.80, 18.75, 1.50, 1.60, ...
## $ chlorides          <dbl> 0.031, 0.041, 0.063, 0.041, 0.057, 0.075, 0...
## $ freesulfurdioxide  <dbl> 36, 29, 18, 30, 65, 16, 4, 34, 46, 58, 54, ...
## $ totalsulfurdioxide <dbl> 135, 114, 40, 113, 224, 49, 8, 102, 113, 18...
## $ density            <dbl> 0.99380, 0.99014, 0.99760, 0.99445, 0.99956...
## $ pH                 <dbl> 3.19, 3.23, 3.14, 3.42, 3.11, 3.36, 3.33, 3...
## $ sulphates          <dbl> 0.37, 0.44, 0.51, 0.40, 0.53, 0.79, 0.37, 0...
## $ alcohol            <dbl> 10.50, 12.60, 9.80, 9.40, 9.10, 9.50, 10.40...
## $ quality            <int> 5, 6, 6, 6, 5, 5, 4, 6, 7, 6, 5, 6, 6, 6, 6...
## $ Vinho              <fct> WHITE, WHITE, RED, WHITE, WHITE, RED, RED, ...

1.2.3 Tamanho do dataset dividido pelo tipo de vinho

wine_dset %>% 
  group_by(Vinho) %>% 
  count()
## # A tibble: 2 x 2
## # Groups:   Vinho [2]
##   Vinho     n
##   <fct> <int>
## 1 RED    1599
## 2 WHITE  4898

1.2.4 Integridade dos dados por tipo de vinho

wine_white_dset <- 
  wine_dset %>%
  filter(Vinho == 'WHITE')

wine_red_dset <- 
  wine_dset %>% 
  filter(Vinho == 'RED')

sum(is.na(wine_white_dset))
## [1] 0
sum(is.na(wine_red_dset))
## [1] 0

1.2.5 Característica de cada tipo de vinho

O vinho branco e vermelho apresentam características diferentes que definem se ele é bom ou ruim. Vamos dar uma olhada nos dados pra cada característica:

1.2.5.1 Sumário dos dados

Vinho Branco

summary(wine_white_dset)
##     id_vinho     fixedacidity    volatileacidity    citricacid    
##  Min.   :   1   Min.   : 3.800   Min.   :0.0800   Min.   :0.0000  
##  1st Qu.:1650   1st Qu.: 6.300   1st Qu.:0.2100   1st Qu.:0.2700  
##  Median :3310   Median : 6.800   Median :0.2600   Median :0.3200  
##  Mean   :3284   Mean   : 6.855   Mean   :0.2782   Mean   :0.3342  
##  3rd Qu.:4932   3rd Qu.: 7.300   3rd Qu.:0.3200   3rd Qu.:0.3900  
##  Max.   :6497   Max.   :14.200   Max.   :1.1000   Max.   :1.6600  
##  residualsugar      chlorides       freesulfurdioxide totalsulfurdioxide
##  Min.   : 0.600   Min.   :0.00900   Min.   :  2.00    Min.   :  9.0     
##  1st Qu.: 1.700   1st Qu.:0.03600   1st Qu.: 23.00    1st Qu.:108.0     
##  Median : 5.200   Median :0.04300   Median : 34.00    Median :134.0     
##  Mean   : 6.387   Mean   :0.04577   Mean   : 35.31    Mean   :138.4     
##  3rd Qu.: 9.900   3rd Qu.:0.05000   3rd Qu.: 46.00    3rd Qu.:167.0     
##  Max.   :45.800   Max.   :0.34600   Max.   :289.00    Max.   :440.0     
##     density             pH          sulphates         alcohol     
##  Min.   :0.9871   Min.   :2.720   Min.   :0.2200   Min.   : 8.00  
##  1st Qu.:0.9917   1st Qu.:3.090   1st Qu.:0.4100   1st Qu.: 9.50  
##  Median :0.9937   Median :3.180   Median :0.4700   Median :10.40  
##  Mean   :0.9940   Mean   :3.188   Mean   :0.4898   Mean   :10.51  
##  3rd Qu.:0.9961   3rd Qu.:3.280   3rd Qu.:0.5500   3rd Qu.:11.40  
##  Max.   :1.0140   Max.   :3.820   Max.   :1.0800   Max.   :14.20  
##     quality        Vinho     
##  Min.   :3.000   RED  :   0  
##  1st Qu.:5.000   WHITE:4898  
##  Median :6.000               
##  Mean   :5.878               
##  3rd Qu.:6.000               
##  Max.   :9.000

Vinho Vermelho

summary(wine_red_dset)
##     id_vinho     fixedacidity   volatileacidity    citricacid   
##  Min.   :   3   Min.   : 4.60   Min.   :0.1200   Min.   :0.000  
##  1st Qu.:1523   1st Qu.: 7.10   1st Qu.:0.3900   1st Qu.:0.090  
##  Median :3103   Median : 7.90   Median :0.5200   Median :0.260  
##  Mean   :3141   Mean   : 8.32   Mean   :0.5278   Mean   :0.271  
##  3rd Qu.:4690   3rd Qu.: 9.20   3rd Qu.:0.6400   3rd Qu.:0.420  
##  Max.   :6490   Max.   :15.90   Max.   :1.5800   Max.   :1.000  
##  residualsugar      chlorides       freesulfurdioxide totalsulfurdioxide
##  Min.   : 0.900   Min.   :0.01200   Min.   : 1.00     Min.   :  6.00    
##  1st Qu.: 1.900   1st Qu.:0.07000   1st Qu.: 7.00     1st Qu.: 22.00    
##  Median : 2.200   Median :0.07900   Median :14.00     Median : 38.00    
##  Mean   : 2.539   Mean   :0.08747   Mean   :15.87     Mean   : 46.47    
##  3rd Qu.: 2.600   3rd Qu.:0.09000   3rd Qu.:21.00     3rd Qu.: 62.00    
##  Max.   :15.500   Max.   :0.61100   Max.   :72.00     Max.   :289.00    
##     density             pH          sulphates         alcohol       
##  Min.   :0.9901   Min.   :2.740   Min.   :0.3300   Min.   : 0.9567  
##  1st Qu.:0.9956   1st Qu.:3.210   1st Qu.:0.5500   1st Qu.: 9.5000  
##  Median :0.9968   Median :3.310   Median :0.6200   Median :10.2000  
##  Mean   :0.9967   Mean   :3.311   Mean   :0.6581   Mean   :10.4001  
##  3rd Qu.:0.9978   3rd Qu.:3.400   3rd Qu.:0.7300   3rd Qu.:11.1000  
##  Max.   :1.0037   Max.   :4.010   Max.   :2.0000   Max.   :14.9000  
##     quality        Vinho     
##  Min.   :3.000   RED  :1599  
##  1st Qu.:5.000   WHITE:   0  
##  Median :6.000               
##  Mean   :5.636               
##  3rd Qu.:6.000               
##  Max.   :8.000
1.2.5.1.1 Diferença da mediana das características

Medianas - Tinto dataset

## fixedacidity

median_red_dset <-  sapply(select(wine_red_dset, -c(Vinho, id_vinho, quality)), median)


median_red_dset <- as.data.frame(median_red_dset)
`colnames<-`(median_red_dset, "Median")
##                      Median
## fixedacidity        7.90000
## volatileacidity     0.52000
## citricacid          0.26000
## residualsugar       2.20000
## chlorides           0.07900
## freesulfurdioxide  14.00000
## totalsulfurdioxide 38.00000
## density             0.99675
## pH                  3.31000
## sulphates           0.62000
## alcohol            10.20000

Medianas - Branco dataset

median_white_dset <-  sapply(select(wine_white_dset, -c(Vinho, id_vinho, quality)),median)

median_white_dset <- as.data.frame(median_white_dset)
`colnames<-`(median_white_dset, "Median")
##                       Median
## fixedacidity         6.80000
## volatileacidity      0.26000
## citricacid           0.32000
## residualsugar        5.20000
## chlorides            0.04300
## freesulfurdioxide   34.00000
## totalsulfurdioxide 134.00000
## density              0.99374
## pH                   3.18000
## sulphates            0.47000
## alcohol             10.40000

Diferença das medianas entre os dois tipos de vinhos

Cmedian_differenc <- abs(median_white_dset - median_red_dset)
Cmedian_differenc <- `colnames<-`(Cmedian_differenc, "Mediana_Difer")
Cmedian_differenc <- rownames_to_column(Cmedian_differenc)
Cmedian_differenc %>%
  arrange(desc(Mediana_Difer)) %>%
  rename(Caracteristica = rowname)
##        Caracteristica Mediana_Difer
## 1  totalsulfurdioxide      96.00000
## 2   freesulfurdioxide      20.00000
## 3       residualsugar       3.00000
## 4        fixedacidity       1.10000
## 5     volatileacidity       0.26000
## 6             alcohol       0.20000
## 7           sulphates       0.15000
## 8                  pH       0.13000
## 9          citricacid       0.06000
## 10          chlorides       0.03600
## 11            density       0.00301

Nota: a ordem descendente dessas características será utilizada nos plots para uma melhor visualização:

1.2.5.1.2 Histogramas de cada característica
plot_ly(wine_dset, y = ~totalsulfurdioxide,type = "box",
              color = ~Vinho, colors = c("red", "khaki")) %>% 
      layout(title = "Dióxido de Enxofre Total")
plot_ly(wine_dset, y = ~freesulfurdioxide,type = "box",
              color = ~Vinho, colors = c("red", "khaki")) %>% 
      layout(title = "Dióxido de Enxofre Livre")
plot_ly(wine_dset, y = ~residualsugar,type = "box",
              color = ~Vinho, colors = c("red", "khaki")) %>% 
      layout(title = "Açúcar Residual")
plot_ly(wine_dset, y = ~fixedacidity,type = "box",
              color = ~Vinho, colors = c("red", "khaki")) %>% 
      layout(title = "Acidez Fixa")

Notando a media de cada característica, vemos uma diferença considerável pra cada vinho (Branco ou Vermelho), portanto, vamos pegar somente um tipo de vinho para uma análise coerente.

Como o número de dados pros vinhos brancos é bem maior do que o para os vermelhos (aprox. 3 vezes maior), seria interessante utilizar os dados que oferecem mais amostras pra treinar e validar nosso modelo.

2 Parte II - (Vinhos Brancos)

A partir da análise acima, decidimos continuar somente com os vinhos branco por causa da quantidade e outros aspectos relevantes das váriaveis envolvidas.

2.1 Regresão Linear

Indentificando os componentes principais do dataset

#install.packages("dplyr")
library(dplyr)

vinhos_brancos <- wine_dset %>% filter(Vinho == 'WHITE')

vinhos_brancos <- vinhos_brancos[1:13]

fix(vinhos_brancos)

Padr_Vinhos <- scale(vinhos_brancos)
acpcor <- prcomp(Padr_Vinhos, scale = TRUE)

Vinhos2 <- vinhos_brancos %>%
  mutate(pc1 = acpcor$x[, 1]) %>%
  mutate(pc2 = acpcor$x[, 2]) %>%
  mutate(pc3 = acpcor$x[, 3]) %>%
  mutate(pc4 = acpcor$x[, 4]) 

matcor <- cor(Vinhos2)

#install.packages("corrplot")
library(corrplot)

corrplot::corrplot(matcor, method="circle", order="hclust")

Com base no gráfico gerado de componentes principais;

Podemos observar que cada componente gerado pelo componentes principais tem uma certa especialidade.

A correlação de PC1 com alcohol,residualsugar,totalsulfurdioxide e density são maiores em relação as outras variáveis.

A correlação de PC2 com Ph, fixadacity são maiores em relação as outras variáveis.

A correlação de PC3 com citricacid, volatileacidity e fixadacity são maiores em relação as outras variáveis.

A correlação de PC4 com chlorides e sulphates são maiores em relação as outras variáveis.

Mediante nossa análise dos componentes principais desse dataset, vamos utilizar os modelos PC1 e PC3, por possuirem melhor correlação com a variável qualidade:

2.1.1 Escolhendo o modelo

Variáveis dependentes: ModeloPC1 <- (quality) ModeloPC3 <- (quality)

Variáveis independentes: ModeloPC1 <- (alchool,residualsugar,totalsulfurdioxide,density) ModeloPC3 <- (citricacid,volatileacidity,fixedacidity)

2.1.1.1 Analisando os coefficientes

Analisando os coefficientes

attach(vinhos_brancos)

modelopc1 <- summary(lm(quality ~ alcohol+residualsugar+totalsulfurdioxide+density))
modelopc1
## 
## Call:
## lm(formula = quality ~ alcohol + residualsugar + totalsulfurdioxide + 
##     density)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4675 -0.5386 -0.0124  0.4711  3.2149 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         1.007e+02  1.379e+01   7.303 3.27e-13 ***
## alcohol             2.366e-01  1.959e-02  12.077  < 2e-16 ***
## residualsugar       5.542e-02  5.295e-03  10.467  < 2e-16 ***
## totalsulfurdioxide  4.428e-04  3.160e-04   1.401    0.161    
## density            -9.835e+01  1.374e+01  -7.156 9.57e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7872 on 4893 degrees of freedom
## Multiple R-squared:  0.2106, Adjusted R-squared:  0.2099 
## F-statistic: 326.2 on 4 and 4893 DF,  p-value: < 2.2e-16
modelopc3 <- summary(lm(quality ~ citricacid+volatileacidity+fixedacidity))
modelopc3
## 
## Call:
## lm(formula = quality ~ citricacid + volatileacidity + fixedacidity)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3170 -0.7450  0.0200  0.3588  3.3870 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      7.21420    0.10777  66.940  < 2e-16 ***
## citricacid      -0.03717    0.10761  -0.345     0.73    
## volatileacidity -1.74089    0.12372 -14.072  < 2e-16 ***
## fixedacidity    -0.12247    0.01526  -8.024 1.27e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8626 on 4894 degrees of freedom
## Multiple R-squared:  0.05189,    Adjusted R-squared:  0.05131 
## F-statistic: 89.28 on 3 and 4894 DF,  p-value: < 2.2e-16

Podemos observar no ModeloPC1;

quality <- 100.7 + 0.2366(alcohol) + 0.05542(residualsugar) + 0.0004428(totalsulfurdioxide) + 98.35(density)

R² <- 21,06%

Verificamos então que esse modelopc1 como tentativa de escolher um modelo que explique a variável quality, percebemos estatisticamente que os estimadores para o caso de beta 3 (totalsulfurdioxide) é muito próximo de 0. Assumindo um nível de significância a 5% de probabilidade podemos vê que o P valor de beta 3 (totalsulfurdioxide), é superior ao nível de significância.

Por esses motivos apresentados não a porque colocar totalsulfurdioxide no modelo.

Podemos observar no ModeloPC3;

Verificamos então que esse modelopc3 como tentativa de escolher um modelo que explique a variável quality, percebemos estatisticamente que os estimadores para o caso de beta 1 (citricacid) é muito próximo de 0. Pelo mesmo motivo apresentado do modelopc1. Não a porque colocar citricacid no modelo.

quality <- 7.21420 - 0.28680(citricacid) - 1.76242(volatileacidity) - 0.12247(fixedacidity)

R² <- 51,89%

Reavaliando Modelos, depois da análise.

modelopc1 <- summary(lm(quality ~ alcohol+residualsugar+density))
modelopc1
## 
## Call:
## lm(formula = quality ~ alcohol + residualsugar + density)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5114 -0.5347 -0.0116  0.4747  3.1974 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    96.01833   13.37790   7.177 8.17e-13 ***
## alcohol         0.23748    0.01958  12.129  < 2e-16 ***
## residualsugar   0.05469    0.00527  10.379  < 2e-16 ***
## density       -93.54585   13.31126  -7.028 2.39e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7873 on 4894 degrees of freedom
## Multiple R-squared:  0.2102, Adjusted R-squared:  0.2098 
## F-statistic: 434.3 on 3 and 4894 DF,  p-value: < 2.2e-16
modelopc3 <- summary(lm(quality ~ volatileacidity+fixedacidity))
modelopc3
## 
## Call:
## lm(formula = quality ~ volatileacidity + fixedacidity)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3168 -0.7453  0.0217  0.3581  3.3862 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      7.21046    0.10721  67.253   <2e-16 ***
## volatileacidity -1.73451    0.12232 -14.180   <2e-16 ***
## fixedacidity    -0.12399    0.01461  -8.487   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8625 on 4895 degrees of freedom
## Multiple R-squared:  0.05187,    Adjusted R-squared:  0.05148 
## F-statistic: 133.9 on 2 and 4895 DF,  p-value: < 2.2e-16

Podemos perceber agora que R² do modelopc1 é 21,02% e R² do modelopc3 é 51,87%. Por esse motivo escolhemos o modelopc3. Mesmo R² do modelopc3 não sendo muito adequado, foi o melhor que conseguimos, realizando diversos testes.

2.1.1.2 Verificar pressuposições

2.1.1.2.1 Residuos
res <- rstandard(lm(quality ~ volatileacidity+fixedacidity))

modelo_fim <- lm(quality ~ volatileacidity+fixedacidity)

plot(predict(modelo_fim), res, xlab = "Preditor linear",ylab = "Residuos")
abline(h = 0, lty = 2)

qqnorm(residuals(modelo_fim), ylab="Residuos",xlab="Quantis teóricos",main="")
qqline(residuals(modelo_fim))

2.1.1.2.2 Teste de normalidade(Shapiro-Wilk)
shapiro.test(res)
## 
##  Shapiro-Wilk normality test
## 
## data:  res
## W = 0.97168, p-value < 2.2e-16

Verificando os residuos do modelo escolhido, nos mostra que pelo teste de normalidade utilizando a estatística do teste e obtendo o resultado de 0.97168 e o p valor de 2.2e-16. O valor de P do teste é pequeno por isso rejeita-se a hipótese de normalidade dos residuos e por consequência, conclui-se que os erros não são normalmente distribuídos

2.2 Árvore de regressão

Variáveis dependentes: ModeloPC1 <- (quality) ModeloPC3 <- (quality)

Variáveis independentes: ModeloPC1 <- (alcohol+residualsugar+density) ModeloPC3 <- (volatileacidity+fixedacidity)

2.2.1 Analisando ModeloPC1

modelopc1 <- rpart (quality ~ alcohol+residualsugar+density, data=vinhos_brancos, 
                     cp = 0.001,minsplit = 5,maxdepth=10)

rpart.plot(modelopc1, type=2, extra="auto", under=FALSE, clip.right.labs=TRUE,
           fallen.leaves=TRUE,   digits=2, varlen=-3, faclen=15,
           cex=NULL, tweak=1.7,
           compress=TRUE,box.palette="auto",
           snip=FALSE)

Val_pred_tree <- predict(modelopc1,interval = "prediction", level = 0.95) 
str(Val_pred_tree)
##  Named num [1:4898] 5.89 6.51 5.35 5.38 5.86 ...
##  - attr(*, "names")= chr [1:4898] "1" "2" "3" "4" ...
mse_tree <- mean((vinhos_brancos$quality - Val_pred_tree)^2)
sqrt(mse_tree)
## [1] 0.7109452

2.2.2 Analisando ModeloPC3

modelopc3 <- rpart (quality ~ volatileacidity+fixedacidity, data=vinhos_brancos, 
                     cp = 0.001,minsplit = 5,maxdepth=10)

rpart.plot(modelopc3, type=2, extra="auto", under=FALSE, clip.right.labs=TRUE,
           fallen.leaves=TRUE,   digits=2, varlen=-3, faclen=15,
           cex=NULL, tweak=1.7,
           compress=TRUE,box.palette="auto",
           snip=FALSE)